var macro;
var jsLF = "\n";
var i, retcode, errtext;
var MyDelay;
var MyPosts;
var Aldeias;
var espioes;
var cavalariaLeve;
var arites;
var command;
var log;
var madeira, argila, ferro;
var relat;
var muralha;
espioes = 1;
cavalariaLeve = 10;





while(true){

    //armazena o relatorio
    macro = "CODE:";
    macro += "ADD !EXTRACT {{!URLCURRENT}}";
    iimPlay(macro);
    var text = iimGetLastExtract();
    relat = text.substr(text.indexOf("view=")+5, 40);

    //extrair dados do relatorio
    macro = "CODE:";
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);
    text = iimGetLastExtract();


    //valores para madeira, argila e ferro
    var recursosDescobertos = text.substr(text.indexOf("Recursos descobertos:"),500);
    madeira = recursosDescobertos.substr(recursosDescobertos.indexOf("Madeira"),100);
    argila = recursosDescobertos.substr(recursosDescobertos.indexOf("Argila"),100);
    ferro = recursosDescobertos.substr(recursosDescobertos.indexOf("Ferro"),100);

    madeira = madeira.split("<span class=\"grey\">.</span>")
    madeira = madeira[0]+madeira[1];

    argila = argila.split("<span class=\"grey\">.</span>")
    argila = argila[0]+argila[1];

    ferro = ferro.split("<span class=\"grey\">.</span>")
    ferro = ferro[0]+ferro[1];

    madeira = madeira.substring(madeira.indexOf(">")+1, madeira.indexOf("<")-1);
    argila = argila.substring(argila.indexOf(">")+1, argila.indexOf("<")-1);
    ferro = ferro.substring(ferro.indexOf(">")+1, ferro.indexOf("<")-1);

    madeira = parseInt(madeira);
    ferro = parseInt(ferro);
    argila = parseInt(argila);

    muralha = text.substr(text.indexOf("Muralha <b>"), 100);
    muralha = muralha.substring(muralha.indexOf("vel ")+4, muralha.indexOf(")"));



    muralha = parseInt(muralha);
    if(muralha > 0)
        logui("Muralha "+muralha);

  
    logui("M: "+ madeira + " A: "+argila+ " F: "+ferro);
    
    var cavalosNecessarios = (madeira+argila+ferro)/80;
    var aritesNecessarias = 0;
    if(muralha>0)
        aritesNecessarias = (muralha * 2)+muralha;

   
   logui("Necessarios: "+cavalosNecessarios+ " cavalos e "+aritesNecessarias+" arites.");
    
    //alert(muralha);
    
    //extrair dados da aldeia de destino
    var destino = text.substr(text.indexOf("Destino:")+26,500);
    destino = destino.substr(destino.indexOf("id=")+3,100);
    var aldeiaDestino = destino.substr(0, destino.indexOf(">")-1)
    var aldeiaNome = destino.substring(destino.indexOf(">")+1,destino.indexOf(" ("));

    if(aldeiaNome == "Aldeia-bonus" || aldeiaNome == "Aldeia de bárbaros"|| aldeiaNome == "Aldeia de bárbaros"){
    
        //la³gica do ataque
        ataque();

        //Retorna para o relata³rio
        macro = "CODE:";
        macro += "URL GOTO=http://br36.tribalwars.com.br/game.php?village=31611&screen=report&mode=all&view="+relat;
        iimPlay(macro);

    }


    while(true){
        if(next())
            break;
    }
    
    logui("");
    //break;
}



function next(){
    
    //muda para o pra³ximo relata³rio
    macro = "CODE:";
    macro += "TAG POS=2 TYPE=A ATTR=TXT:<<";
    retcode = iimPlay(macro);
    
    if (retcode < 0) {              // an error has occured
        errtext = iimGetLastError();
        macro = "CODE:";
        macro += "WAIT SECONDS=60" + jsLF;
        macro += "URL GOTO=http://br36.tribalwars.com.br/game.php?village=31611&screen=report&mode=all&view="+relat;
        iimPlay(macro);
     
        return false;
    } 
    return next;
    
}



function ataque(){
    macro = "CODE:";
    macro += "URL GOTO=http://br36.tribalwars.com.br/game.php?village=31611&screen=place&target="+ aldeiaDestino + jsLF;
    iimPlay(macro);


    while(true){
        if(verificaTropasNecessarias()){
            break
        }else{
            macro = "CODE:";
            macro += "WAIT SECONDS=60" + jsLF;
            iimPlay(macro);
        }
    }

    macro = "CODE:";
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_spy CONTENT="+ espioes + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_light CONTENT=" + cavalariaLeve + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:units ATTR=ID:unit_input_ram CONTENT="+arites + jsLF;
    macro += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:units_form ATTR=ID:target_attack" + jsLF;
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);

    text = iimGetLastExtract();
    command = text.substr(text.indexOf("action=command&amp;h=")+21,4);

    macro = "CODE:";
    macro += "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://br36.tribalwars.com.br/game.php?village=31611&screen=place&action=command&h="+ command +" ATTR=ID:troop_confirm_go" + jsLF;
    retcode = iimPlay(macro);
}


function verificaTropasNecessarias(){
    macro += "TAG POS=1 TYPE=TD ATTR=ID:inner-border EXTRACT=HTM";
    iimPlay(macro);

    //verificar se possui o numero de tropas para o ataque
    var text = iimGetLastExtract();

    //obtem o numero de cavalos leves
    var numCavalariaLeve = text.substr(text.indexOf("('#unit_input_light')")+23,10);
    numCavalariaLeve = numCavalariaLeve.substr(0,numCavalariaLeve.indexOf(")"));
    numCavalariaLeve = parseInt(numCavalariaLeve);
    //    alert(numCavalariaLeve);

    var numSpy = text.substr(text.indexOf("('#unit_input_spy')")+20,10);
    numSpy = numSpy.substr(0,numSpy.indexOf(")"));
    numSpy = parseInt(numSpy);
    //    alert(numSpy);
    
    var numArites = text.substr(text.indexOf("('#unit_input_ram')")+20,10);
    numArites = numArites.substr(0,numArites.indexOf(")"));
    numArites = parseInt(numArites);
    //alert(numArites);
    
    

    var confirm = false;

    //verifica se sa£o sufucientes para o ataque
    //cavalosNecessarios = parseInt(cavalosNecessarios);
    //alert(numCavalariaLeve+" - "+ cavalosNecessarios);
    if(numCavalariaLeve>cavalosNecessarios+5){
        cavalariaLeve = cavalosNecessarios+5;
        confirm = true;
    // alert(cavalariaLeve);
    }else {
        if(numCavalariaLeve>=5){
            cavalariaLeve = numCavalariaLeve;
            confirm = true;
        }else{
            confirm = false;
        }
    }

    if(confirm && numSpy>=1){
        espioes = 1;
    }else{
        confirm = false;
    }
    
    if(confirm){
        if(aritesNecessarias<=numArites)
            arites = aritesNecessarias;
        else
            arites = numArites;
        
    }

    if(confirm){
        logui("enviados: CL: "+cavalariaLeve + " spy: "+espioes+ " Ar: "+arites);
    }
    
    return confirm;
}


function logui(txtLog){
    log = txtLog + jsLF+ log;
    iimDisplay(log);
}
